import { get, post } from './request'

/**
 * 用户登录
 * @param {Object} data - 登录信息
 * @returns {Promise} - 登录结果
 */
export function login(data) {
  return post('/user/login', data, { showLoading: true })
}

/**
 * 用户注册
 * @param {Object} data - 注册信息
 * @returns {Promise} - 注册结果
 */
export function register(data) {
  return post('/user/register', data, { showLoading: true })
}

/**
 * 获取用户信息
 * @returns {Promise} - 用户信息
 */
export function getUserInfo() {
  return get('/user/info')
}

/**
 * 更新用户信息
 * @param {Object} data - 用户信息
 * @returns {Promise} - 更新结果
 */
export function updateUserInfo(data) {
  return post('/user/update', data)
}

/**
 * 获取用户钱包信息
 * @returns {Promise} - 钱包信息
 */
export function getWalletInfo() {
  return get('/user/wallet')
}

/**
 * 充值
 * @param {Object} data - 充值信息
 * @returns {Promise} - 充值结果
 */
export function recharge(data) {
  return post('/user/wallet/recharge', data, { showLoading: true })
}

/**
 * 提现
 * @param {Object} data - 提现信息
 * @returns {Promise} - 提现结果
 */
export function withdraw(data) {
  return post('/user/wallet/withdraw', data, { showLoading: true })
}

/**
 * 获取交易记录
 * @param {Object} params - 查询参数
 * @returns {Promise} - 交易记录
 */
export function getTransactions(params) {
  return get('/user/transactions', params)
}

/**
 * 获取用户等级信息
 * @returns {Promise} - 等级信息
 */
export function getLevelInfo() {
  return get('/user/level')
}

/**
 * 获取用户社交数据
 * @returns {Promise} - 社交数据
 */
export function getSocialData() {
  return get('/user/social')
}

/**
 * 邀请好友
 * @param {Object} data - 邀请信息
 * @returns {Promise} - 邀请结果
 */
export function inviteFriend(data) {
  return post('/user/invite', data)
}

/**
 * 获取系统通知
 * @param {Object} params - 查询参数
 * @returns {Promise} - 通知列表
 */
export function getNotifications(params) {
  return get('/user/notifications', params)
}

/**
 * 标记通知为已读
 * @param {Number} id - 通知ID
 * @returns {Promise} - 操作结果
 */
export function markNotificationRead(id) {
  return post(`/user/notifications/${id}/read`)
}

/**
 * 退出登录
 * @returns {Promise} - 退出结果
 */
export function logout() {
  return post('/user/logout')
}